home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / SHELLMSG.D < prev    next >
Encoding:
Modula Definition  |  1991-10-20  |  7.4 KB  |  176 lines

  1. DEFINITION MODULE ShellMsg;
  2.  
  3. (*
  4.  * Enthält Variablen für die Kommunikation der Shell mit Compiler,
  5.  * Editor, Linker und Make.
  6.  *
  7.  * ---------------------------------------------------------------------------
  8.  * 20.10.91  TT  LinkerParm um Symboldatei-Felder erweitert.
  9.  *)
  10.  
  11. FROM SYSTEM IMPORT LONGWORD;
  12. FROM MOSGlobals IMPORT SfxStr, PathStr, FileStr, NameStr;
  13. FROM Strings IMPORT String;
  14. FROM PathCtrl IMPORT PathList;
  15.  
  16. TYPE    LinkDesc = RECORD
  17.                      valid: BOOLEAN;
  18.                      name : ARRAY [0..39] OF CHAR
  19.                    END;
  20.  
  21.         LLRange = [1..8];
  22.         
  23.         LinkMode= (noOptimize, nameOptimize, partOptimize, fullOptimize);
  24.  
  25.  
  26. VAR     Active: BOOLEAN;  (* TRUE = Eine Shell ist vorhanden / vorbereitet *)
  27.  
  28. (*
  29.  * Statische Werte, die von diesem Modul selbst eingestellt werden
  30.  * ---------------------------------------------------------------
  31.  *)
  32.  
  33.     (* Für Compiler: Suffices für erzeugte Dateien *)
  34.         DefSfx: SfxStr;      (* Extension f. Symboldateien *)
  35.         ImpSfx: SfxStr;      (* Extension f. Implementations-Codes *)
  36.         ModSfx: SfxStr;      (* Extension f. Hauptmodul-Codes *)
  37.         SymSfx: SfxStr;      (* z.Zt. unbenutzt, reserviert *)
  38.  
  39.     (* Für Shell, ModRef *)
  40.         DefSrcSfx: SfxStr;      (* Extension f. Definitions-Texte *)
  41.         ImpSrcSfx: SfxStr;      (* Extension f. Implementations-Texte *)
  42.         ModSrcSfx: SfxStr;      (* Extension f. Hauptmodul-Texte *)
  43.  
  44. (*
  45.  * Statische Werte, die von der MM2Shell eingestellt werden
  46.  * --------------------------------------------------------
  47.  *)
  48.  
  49.     (* Shell: global, z.B. f. Make *)
  50.         TemporaryPath: PathStr;         (* f. temporäre Dateien *)
  51.         ShellPath: PathStr;             (* Pfad (HomePath) der Shell selbst *)
  52.  
  53.     (* Compiler / Linker / Debugger *)
  54.         StdPaths: PathList;  (* Suchliste f. Shell: Module/Programme/Batch *)
  55.         DefPaths: PathList;  (* Suchliste f. Compiler: Symbol-Dateien (.DEF) *)
  56.         ImpPaths: PathList;  (* Suchliste f. Linker: Code-Dateien (.IMP) *)
  57.         ModPaths: PathList;  (* Suchliste f. Linker: Code-Dateien (.MOD) *)
  58.         SrcPaths: PathList;  (* Suchliste f. Compiler und Editor: Quelltexte *)
  59.         SymPaths: PathList;  (* z.Zt. unbenutzt, reserviert *)
  60.  
  61.     (* Für Compiler: Ausgabepfade f. erzeugte Dateien                    *)
  62.     (* Bei leeren Strings wird der Code im Pfad des Quelltextes abgelegt *)
  63.         DefOutPath: PathStr;      (* Pfad f. Symboldateien (.DEF) *)
  64.         ImpOutPath: PathStr;      (* Pfad f. Implementations-Codes (.IMP) *)
  65.         ModOutPath: PathStr;      (* Pfad f. Hauptmodul-Codes (.MOD) *)
  66.         SymOutPath: PathStr;      (* z.Zt. unbenutzt, reserviert *)
  67.  
  68.     (* Für Compiler: Name der Fehlertextdatei *)
  69.         ErrListFile: FileStr;
  70.  
  71.     (* Für Compiler: Name der Libray-Datei mit Definitionscodes *)
  72.         DefLibName: FileStr;
  73.  
  74.     (* Für Linker *)
  75.         LinkerParm: RECORD
  76.                       name         : String;
  77.                                         (*  Linkername                  *)
  78.                       linkStackSize: LONGCARD;
  79.                                         (* Stackgröße f. gelinkte Prg.  *)
  80.                       maxLinkMod   : CARDINAL;
  81.                                         (* Maximal zu linkende Module.  *)
  82.                       linkList     : ARRAY LLRange OF LinkDesc;
  83.                                         (* Einzulinkende Treibermodule. *)
  84.                       optimize     : LinkMode;
  85.                                         (* Legt Optimierungsstrategie fest   *)
  86.                       fastLoad     : BOOLEAN;
  87.                                         (* Setze Fast-Load-Bit (ab TOS 1.4)  *)
  88.                       fastCode     : BOOLEAN;
  89.                                         (* Nur Atari TT                      *)
  90.                       fastMemory   : BOOLEAN;
  91.                                         (* Nur Atari TT                      *)
  92.                       outputName   : String;
  93.                                         (* Expliziter Name f. Ausgabedatei   *)
  94.                       symbolFile   : BOOLEAN;
  95.                                         (* Erzeugen einer Symboldatei        *)
  96.                       symbolArgs   : String;
  97.                                         (* Argumente f. " (s. MM2LnkIO)      *)
  98.                     END;
  99.         
  100.         
  101.  
  102.     (* Für Make *)
  103.         MakeFileName: FileStr;  (* Default-Name, wenn sonst keiner angegeben *)
  104.  
  105.     (* Für Editor und Shell zum Aufruf des Compilers: *)
  106.         CompilerParm: RECORD
  107.                         name     : String;  (*  Compilername       *)
  108.                         shortMsgs: BOOLEAN; (*  quiet compilation  *)
  109.                         protocol : BOOLEAN; (*  write protocol     *)
  110.                         protName : String;  (*  protocol file name *)
  111.                         protWidth: CARDINAL;(*  protocol width     *)
  112.                       END;
  113.  
  114.     (* Für Shell zum Aufruf des Editors: *)
  115.         EditorParm   : RECORD
  116.                          name          : String;       (*  Editorname  *)
  117.                          passErrorPos  : BOOLEAN;
  118.                          passErrorText : BOOLEAN;
  119.                          passName      : BOOLEAN;
  120.                          passArgument  : BOOLEAN;
  121.                          tempShellFile : BOOLEAN;
  122.                          tempEditorFile: BOOLEAN;
  123.                          searchSources : BOOLEAN;
  124.                          waitOnError   : BOOLEAN;
  125.  
  126.                          tempShellName : NameStr;
  127.                          tempEditorName: NameStr;
  128.                        END;
  129.  
  130. (*
  131.  *  Variable, die zum Austausch von Informationen zwischen
  132.  *     Compiler, Editor, Make, Linker und Shell dienen.
  133.  * --------------------------------------------------------
  134.  *)
  135.  
  136.     (* Inhalt des "Ausgabepfads" in der Compiler-Box der Shell.
  137.      * Hierauf greift der Compiler nicht direkt zu, sondern die
  138.      * Shell übergibt den String ggf. über die Argumentzeile
  139.      * (mit "/O"-Option, siehe Shell-Source).
  140.      *)
  141.         MainOutputPath: PathStr; (* Wenn nicht leer, hat dieser Pfad   *)
  142.                                  (* Vorrang vor den einzelnen Ausgabe- *)
  143.                                  (* pfaden 'Def/Imp/ModOutPath'!       *)
  144.  
  145.         CompilerArgs: String;    (* Zusätzliche Argumente an Compiler, *)
  146.                                  (* z.B: "-R -S", um Range-, Overflow- *)
  147.                                  (* und Stack-Prüfungen zu unterbinden *)
  148.  
  149.     (* Akt. Dateien der Shell, modifizierbar *)
  150.         CodeName: FileStr;        (* Name der Code-Datei *)
  151.         TextName: FileStr;        (* Name des Quelltextes *)
  152.  
  153.     (* An Compiler v. Shell / ErrorHandler *)
  154.         ScanMode: BOOLEAN;
  155.         ScanAddr: LONGCARD;
  156.         ScanOpts: LONGWORD;
  157.  
  158.     (* Von GEMError an Shell *)
  159.         ScanIndex: CARDINAL;   (* Index auf 'GEMScan.CallingChain' *)
  160.  
  161.     (* Vom Compiler / ErrorHandler an Shell: *)
  162.  
  163.         (* ExitCode=0 (Compilation/Scanning OK): *)
  164.         CodeSize: LONGCARD;
  165.         ModuleName: ARRAY [0..79] OF CHAR;
  166.  
  167.         (* ExitCode=1 (No name) *)
  168.  
  169.         (* ExitCode=2 (I/O error), *)
  170.         (* ExitCode=3 (Comp-error): *)
  171.         ErrorMsg: ARRAY [0..79] OF CHAR;  (* Fehlermeldung vom Compiler *)
  172.         TextLine: CARDINAL;               (* Nur nach Comp-Fehler *)
  173.         TextCol : CARDINAL;               (* Nur nach Comp-Fehler *)
  174.  
  175. END ShellMsg.
  176.